#include <bits/stdc++.h>
using namespace std;

// 前序遍历字符串
string preorder;
// 中序遍历字符串
string inorder;
// 后序遍历字符串
string postorder;

// 深度优先搜索函数
void dfs(string pre, string in) {
  // 如果前序字符串为空，返回
  if (pre.empty()) {
    return;
  }
  // 找到当前根节点在中序字符串中的位置
  int pos = in.find(pre[0]);

  // 递归处理左子树
  dfs(pre.substr(1, pos), in.substr(0, pos));   // 左子树
  // 递归处理右子树
  dfs(pre.substr(pos + 1), in.substr(pos + 1)); // 右子树
  // 将当前根节点添加到后序字符串
  postorder += pre[0];
}

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  // freopen("*.in ", "r", stdin); // 输入重定向
  // freopen("*.out", "w", stdout); // 输出重定向
  cin >> preorder >> inorder; // 输入前序和中序字符串
  dfs(preorder, inorder); // 调用深度优先搜索
  cout << postorder << endl; // 输出后序字符串

  return 0;
}